package co.com.smart.persistence.entity.dto;

import java.io.Serializable;

import javax.persistence.*;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the smart_pacientes database table.
 * 
 */
@Entity
@Table(name="smart_pacientes")
@NamedQuery(name="SmartPaciente.findAll", query="SELECT s FROM SmartPaciente s")
public class SmartPaciente implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="sm_scpaciente")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private BigDecimal smScpaciente;

	@Column(name="sm_cousuario")
	private String smCousuario;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhingreso")
	private Date smFhingreso;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhmodificacion")
	private Date smFhmodificacion;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhretiro")
	private Date smFhretiro;

	//bi-directional many-to-one association to SmartAfiliacion
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smartPaciente", fetch = FetchType.LAZY)
	private List<SmartAfiliacion> smartAfiliacions;

	//bi-directional many-to-one association to SmartCita
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smartPaciente", fetch = FetchType.LAZY)
	private List<SmartCita> smartCitas;

	//bi-directional many-to-one association to SmartPersona
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scpersona",referencedColumnName="sm_scpersona")
	private SmartPersona smartPersona;

	public SmartPaciente() {
	}

	public BigDecimal getSmScpaciente() {
		return this.smScpaciente;
	}

	public void setSmScpaciente(BigDecimal smScpaciente) {
		this.smScpaciente = smScpaciente;
	}

	public String getSmCousuario() {
		return this.smCousuario;
	}

	public void setSmCousuario(String smCousuario) {
		this.smCousuario = smCousuario;
	}

	public Date getSmFhingreso() {
		return this.smFhingreso;
	}

	public void setSmFhingreso(Date smFhingreso) {
		this.smFhingreso = smFhingreso;
	}

	public Date getSmFhmodificacion() {
		return this.smFhmodificacion;
	}

	public void setSmFhmodificacion(Date smFhmodificacion) {
		this.smFhmodificacion = smFhmodificacion;
	}

	public Date getSmFhretiro() {
		return this.smFhretiro;
	}

	public void setSmFhretiro(Date smFhretiro) {
		this.smFhretiro = smFhretiro;
	}

	public List<SmartAfiliacion> getSmartAfiliacions() {
		return this.smartAfiliacions;
	}

	public void setSmartAfiliacions(List<SmartAfiliacion> smartAfiliacions) {
		this.smartAfiliacions = smartAfiliacions;
	}

	public SmartAfiliacion addSmartAfiliacion(SmartAfiliacion smartAfiliacion) {
		getSmartAfiliacions().add(smartAfiliacion);
		smartAfiliacion.setSmartPaciente(this);

		return smartAfiliacion;
	}

	public SmartAfiliacion removeSmartAfiliacion(SmartAfiliacion smartAfiliacion) {
		getSmartAfiliacions().remove(smartAfiliacion);
		smartAfiliacion.setSmartPaciente(null);

		return smartAfiliacion;
	}

	public List<SmartCita> getSmartCitas() {
		return this.smartCitas;
	}

	public void setSmartCitas(List<SmartCita> smartCitas) {
		this.smartCitas = smartCitas;
	}

	public SmartCita addSmartCita(SmartCita smartCita) {
		getSmartCitas().add(smartCita);
		smartCita.setSmartPaciente(this);

		return smartCita;
	}

	public SmartCita removeSmartCita(SmartCita smartCita) {
		getSmartCitas().remove(smartCita);
		smartCita.setSmartPaciente(null);

		return smartCita;
	}

	public SmartPersona getSmartPersona() {
		return this.smartPersona;
	}

	public void setSmartPersona(SmartPersona smartPersona) {
		this.smartPersona = smartPersona;
	}

}